Searching multiple sellers by multiple matching items

ABSTRACT

In various exemplary embodiments, a system and associated method for to perform a search for a plurality of items in an electronic environment. In one embodiment, the system includes a keyword prompt engine to receive a plurality of keywords from an end-user. Each of the plurality of keywords is related to the plurality of items for which the end-user is searching. A price range engine prompts the end-user to input a price range for each of the plurality of items. A search engine uses one or more processors to locate the plurality of items in an inventory within the electronic environment based on the plurality of keywords and the price range. The search engine further matches concurrently one or more sellers having the plurality of items available for sale.

This application is a U.S. National Stage Filing under 35 U.S.C. 371from International patent application Ser. No. PCT/CN2009/001481, filedDec. 17, 2009, and published on Jun. 23, 2011 as WO 2011/072424 A1, thecontents of which are incorporated herein by reference in theirentirety.

TECHNICAL FIELD

The present application relates generally to the field of computertechnology and, in a specific exemplary embodiment, to a system andmethod of searching a multitude of sources simultaneously for two ormore items.

BACKGROUND

During the past several years, a substantial growth has occurred in thequantity and diversity of information and services available over theInternet. The number of users of the Internet has similarly grownrapidly. A predominant growth area on the Internet has been in the useof the World Wide Web, often referred to as WWW, W3, or simply “theWeb.” The hyper-text transfer protocol (HTTP) that serves as afoundation protocol for the Web has been widely adopted and implementedin numerous Web browsers and Web servers.

Web browsers provide a convenient user application for receiving textualand graphical information of individual Web pages in a scrollabledisplay page format. The Web pages frequently allow a typical end-userto access a variety of educational, commercial, and retail Web sitesthrough search boxes.

BRIEF DESCRIPTION OF DRAWINGS

Various ones of the appended drawings merely illustrate exemplaryembodiments of the present invention and cannot be considered aslimiting its scope.

FIG. 1 is a block diagram of an exemplary embodiment of a high-levelclient-server-based network architecture diagram depicting a system usedto process end-user queries;

FIG. 2 is a block diagram illustrating an exemplary embodiment ofvarious modules of the network architecture of FIG. 1;

FIG. 3A is an exemplary user prompt interface used in query and searchengines to access the modules of FIG. 2;

FIG. 3B is an exemplary results interface produced from the user promptinterface of FIG. 3A;

FIG. 4 is a flowchart of an exemplary method for selecting andevaluating criteria to determine common resources matching criteria ofFIG. 3A; and

FIG. 5 is a simplified block diagram of a machine in an exemplary formof a computing system within which a set of instructions, for causingthe machine to perform any one or more of the methodologies discussedherein, may be executed.

DETAILED DESCRIPTION

The description that follows includes illustrative systems, methods,techniques, instruction sequences, and computing machine programproducts that embody the present invention. In the followingdescription, for purposes of explanation, numerous specific details areset forth to provide an understanding of various embodiments of theinventive subject matter. It will be evident, however, to those skilledin the art that embodiments of the inventive subject matter may bepracticed without these specific details. Further, well-knowninstruction instances, protocols, structures, and techniques have notbeen shown in detail.

As used herein, the term “or” may be construed in either an inclusive orexclusive sense. Similarly, the term “exemplary” is construed merely tomean an example of something or an exemplar and not necessarily apreferred or ideal means of accomplishing a goal. Additionally, althoughvarious exemplary embodiments discussed below focus on end-user queriesin an electronic retail or marketplace environment, the embodiments aregiven merely for clarity in disclosure. Thus, any type of electroniccommerce or electronic business system and method, including varioussystem architectures, may employ various embodiments of the end-usersearch system and method described herein and are considered as beingwithin a scope of the present invention.

In an exemplary embodiment, a system to perform a search concurrentlyfor several items in an electronic marketplace environment is disclosed.The system includes a keyword prompt engine to receive keywords from anend-user describing the items. The keywords are related to each of theseveral items for which the end-user is searching. A price range promptengine receives a price range from the end-user for each of the severalitems. A search engine uses one or more processors to locate, from aninventory within the electronic marketplace environment, the severalitems that match the keywords and the price range. The search enginefurther matches concurrently each of the sellers having the severalitems available for sale.

In another exemplary embodiment, a method (and related machine-readablestorage medium, e.g., a DVD or CD-ROM, for storing the method) toperform a search for several items in an electronic marketplaceenvironment are disclosed. The method includes prompting an end-user forcriteria related to the several items. The criteria are selected toinclude keywords from the end-user that are related to the several itemsfor which the end-user is searching. The criteria further include aprice range for each of the several items. The criteria are used toperform a search to locate the several items in an inventory within theelectronic environment that match the criteria. The search engine alsomatches concurrently sellers having the several items available forsale.

In another exemplary embodiment, a method (and related machine-readablestorage medium, e.g., a DVD or CD-ROM, for storing the method) toprovide search results in an electronic marketplace environment inresponse to a received search query is disclosed. The method includesprompting an end-user for criteria related to several items the end-userdesires to purchase. The criteria are selected to include keywords fromthe end-user. The keywords are related to each of the several items forwhich the end-user is searching. The criteria further include a pricerange for each of the several items and a category identifier for eachof the items. The criteria are used to perform a search, the searchusing one or more processors, to locate the plurality of items in aninventory within the electronic marketplace environment that match thecriteria. The search also matches concurrently the sellers, many or allof which may have been previously unknown to the end-user, that have atleast a portion of the items available for sale. A listing of thesellers and the related items is presented to the end-user. Each ofthese exemplary embodiments, and others, is discussed in detail, below.

With reference to FIG. 1, a high-level network diagram of an embodimentof an exemplary system 100 with a client-server architecture includes afirst client machine 101, a second client machine 107, a third clientmachine 111, a network 117 (e.g., the Internet), and an informationstorage and retrieval platform 120. The information storage andretrieval platform 120 may constitute a commerce platform or commerceserver and provides server-side functionality, via the network 117, tothe first 101, second 107, and third 111 client machines. A programmaticclient 103 in the form of authoring modules 105 is executing on thefirst client machine 101, a first web client 109 (e.g., a browser, suchas the Internet Explorer browser developed by Microsoft Corporation ofRedmond, Wash.) is executing on the second client machine 107, and asecond web client 113 is executing on the third client machine 111.Additionally, the first client machine 101 is coupled to one or moredatabases 115.

Turning to the information storage and retrieval platform 120, anapplication program interface (API) server 121 and a web server 123 arecoupled to, and provide programmatic and web interfaces respectively to,one or more application servers 125. The application servers 125 hostone or more modules 127 (e.g., modules, applications, engines, etc.).The application servers 125 are, in turn, coupled to one or moredatabase servers 129 that facilitate access to one or more informationstorage databases 131. The one or more modules 127 provide a number ofinformation storage and retrieval functions and services to users thataccess the information storage and retrieval platform 120. The one ormore modules 127 are discussed in more detail, below.

While the exemplary system 100 of FIG. 1 employs a client-serverarchitecture, a skilled artisan will recognize that the presentdisclosure is not limited to such an architecture. The exemplary system100 could equally well find application in a distributed or peer-to-peerarchitecture system. The one or more modules 127 and the authoringmodules 105 may also be implemented as standalone software programs,which do not necessarily have networking capabilities.

The first 109 and second 113 web clients access the one or more modules127 via the web interface supported by the web server 123. Similarly,the programmatic client 103 accesses the various services and functionsprovided by the one or more modules 127 via the programmatic interfaceprovided by the API server 121. The programmatic client 103 may be, forexample, a seller application (e.g., the “Turbo Lister 2” applicationdeveloped by eBay Inc., of San Jose, Calif.) enabling sellers to authorand manage data items or listings on the information storage andretrieval platform 120 in an off-line manner. Further, batch-modecommunications can be performed between the programmatic client 103 andthe information storage and retrieval platform 120. In addition, theprogrammatic client 103 may include, as previously indicated, theauthoring modules 105 used to author, generate, analyze, and publishdomain rules and aspect rules used in the information storage andretrieval platform 120 to structure data items and transform queries.Such domain and aspect rules are known independently in the art.

Referring now to FIG. 2, an exemplary block diagram of the one or moremodules 127 includes a communication module 201, a listing module 203, ascrubber module 205, a string analyzer module 207, a plurality ofprocessing modules 209, and a first 215 and second 239 publishingmodule. The first publishing module 215 is used in a productionenvironment while the second publishing module 239 is used in a previewenvironment. The one or more modules 127 further includes a marketplaceapplication block 241. Each of the first 215 and second 239 publishingmodules includes a query engine 217, a search index engine 227, and aclassification service engine 235 (the individual engines are only shownin the first publishing module 215 but are readily envisioned by askilled artisan in the second publishing module 239 as well). The first215 and second 239 publishing modules are each utilized to publish newor existing rules to either the production environment or the previewenvironment, as appropriate, in the information storage and retrievalplatform 120 of FIG. 1 thereby enabling the rules to be operative (e.g.,applied to data items and queries) in the respective environments.

In a specific exemplary embodiment, the information storage andretrieval platform 120 of FIG. 1 may be embodied as a network-basedmarketplace that supports the transaction of data items or listings(e.g., goods or services) between sellers and buyers. One suchmarketplace is eBay, the World's Online Marketplace, developed by eBayInc., of San Jose, Calif. In this specific exemplary embodiment, theinformation storage and retrieval platform 120 may receive informationfrom sellers describing the data items that may subsequently beretrieved by potential buyers or bidders. The one or more modules 127may therefore include the marketplace application block 241 to provide anumber of marketplace functions and services to end-users that accessthe information storage and retrieval platform 120.

The preview environment enables a category manager (not shown) toanalyze rules and determine whether such rules perform as expectedwithout affecting live operations in the production environment. Forexample, the preview environment enables a most popular query analysis,a domain coverage analysis, an aspect coverage analysis, and anaspect-value pair coverage analysis as described later in this document.After determining that rules perform as expected, the category managerpublishes the rules to the production environment in the informationstorage and retrieval platform 120.

The communication module 201 receives a query from one or more of theclient machines 101, 107, 111 (FIG. 1). The query may include one ormore constraints (e.g., keywords, categories, or information specific toa type of data item). The communication module 201 interacts with thequery engine 217 and the search index engine 227 to process the query.The communication module 201 receives aspect-value pairs extracted fromthe query. Further, the communication module 201 constructs atransformed query based on the aspect-value pairs extracted from thequery and communicates an interface (e.g., a graphical user interface)to an end-user at one or more of the client machines 101, 107, 111.

A query retrieval module 213 receives information from one or more ofthe client machines 101, 107, 111 and stores the information as a dataitem in the one or more information storage databases 131 (FIG. 1). Forexample, an end-user acting as a seller, may operate one of the one ormore of the client machines 101, 107, 111 to enter descriptiveinformation for a data item for the purpose of offering the data itemfor sale or auction through the information storage and retrievalplatform 120.

The plurality of processing modules 209 receives classificationinformation and metadata information. The plurality of processingmodules 209 publishes the classification and metadata information to aproduction environment or a preview environment. The plurality ofprocessing modules 209 may also publish to the production environment bypublishing the classification and metadata information to backendservers (not shown) that host the query engine 217, the search indexengine 227, and the classification service engine 235. The plurality ofprocessing modules 209 publishes to a preview environment by publishingthe classification and metadata information to a local backend server(not shown) hosting the query engine 217, the search index engine 227,and the classification service engine 235.

The plurality of processing modules 209 further includes a data itemretrieval module 211 to receive requests for data items from a categorymanager operating the first client machine 101. For example, responsiveto receiving a request, the data item retrieval module 211 reads dataitems from the data item information stored on the one or moreinformation storage databases 131 (FIG. 1) and stores the data items assample information in the one or more databases 115.

The query retrieval module 213 receives requests for queries from acategory manager operating the first client machine 101. For example,responsive to receiving the request, the query retrieval module 213reads queries from the sample information and communicates the queriesto the first client machine 101.

The scrubber module 205 receives item information entered by one or moreof the client machines 101, 107, 111 creating a data item. The scrubbermodule 205 utilizes services of the classification service engine 235 tostructure the item information in the data item (e.g., applies domainand aspect rules).

The string analyzer module 207 receives requests from the first clientmachine 101 to identify candidate values to associate with an aspect.The request may include the aspect and one or more values that have beenassociated to the aspect. The string analyzer module 207 utilizes theaspect (e.g., “color”) to identify strings of text in a database thatincludes the aspect. The string analyzer module 207 relies on variousservices provided in the information storage and retrieval platform 120to identify and process the strings of text. For example, the stringanalyzer module 207 utilizes services that expand the aspect to aderivative form of the aspect including a singular form (e.g., “color”),a plural form (e.g., “colors”), a synonymous form, an alternate wordform (e.g., “chroma,” “coloring,” “tint”), a commonly misspelled form(e.g., “collor”) or an acronym form.

In a specific exemplary embodiment, the string analyzer module 207identifies boundaries of a string of text based on a position of theaspect and derivatives thereof in the string of text. For example, thestring analyzer module 207 identifies boundaries of the string of textbased on a predetermined number of words to the left and right of theaspect in the string of text. The predetermined number of words may be aconfigurable value. After the strings of text have been identified, thestring analyzer module 207 relics on a service in the informationstorage and retrieval platform 120 to remove any stop words from thestrings (e.g., “the,” “and,” or “if”). For example, stop words mayinclude prepositions and antecedents since they are not candidatevalues. Next, the string analyzer module 207 removes the aspect valuesreceived in the request from the string. Finally, the string analyzermodule 207 returns the remaining candidate values to the first clientmachine 101.

A database (not shown specifically) utilized by the string analyzermodule 207 includes queries that have been entered by a user to theinformation storage and retrieval platform 120 or data items that havebeen entered by a user to the information storage and retrieval platform120, dictionaries, or thesauruses. The string analyzer module 207analyzes the strings of text to identify candidate values to associatewith the aspect. More examples of query strings and searching techniquesare given, below.

The classification service engine 235 applies domain rules and aspectrules to data items. For example, the classification service engine 235applies domain rules to identify one or more domain-value pairs (e.g.,product type=electronic MP3 players) associated with the data item. Theclassification service engine 235 further applies the aspect rules toidentify aspect-value pairs (e.g., brand=Apple) associated with the dataitem. The classification service engine 235 applies the domain andaspect rules to data items or listings as they are added to theinformation storage and retrieval platform 120 or responsive to thepublication of new rules (e.g., domain rules or aspect rules).

The classification service engine 235 processes data items received fromthe second 107 and third 111 client machines. For example, the scrubbermodule 205 uses services of the classification service engine 235, asdescribed previously, to apply domain rules and aspect rules to the dataitem. The classification service engine 235 further stores the dataitem, with the associated domain-value pairs and aspect-value pairs, inthe one or more information storage databases 131 (FIG. 1) as itemsearch information. Further, the classification service engine 235pushes or publishes item search information over a bus (not shown butimplicitly understood by a skilled artisan) in real time to the searchindex engine 227. The classification service engine 235 executes in thepreview environment enabling analysis of newly authored rules beforepublication of the rules to the production environment. Theclassification service engine 235 further maintains histograminformation in the form of data item counters as the domain and aspectrules are applied to the data items. For example, the classificationservice engine 235 may increment a data item counter responsive to acondition clause in a domain or aspect rule evaluating TRUE. Thehistogram information communicates to one or more of the client machines101, 107, 111 that utilize the histogram information to determinepercentage coverage for most popular queries, domains, aspects, andaspect-value pairs.

The query engine 217 includes an aspect extractor module 219, aclassification information module 221, a metadata service module 223,and a metadata information module 225. In the production environment,the aspect extractor module 219 receives a query from the communicationmodule 201 and applies aspect rules to extract aspect-value pairs fromthe query. Further, the aspect extractor module 219 communicates thequery received from the communication module 201 to the plurality ofprocessing modules 209 that stores the query as sample queryinformation.

In the preview environment, the aspect extractor module 219 receives themost popular queries from one or more of the client machines 101, 107,111 and applies aspect rules to extract aspect-value pairs from thequery. Further, the aspect extractor module 219 maintains histograminformation in the preview environment while applying the aspect rulesto the queries. For example, the query engine 217 responds to acondition clause that evaluates TRUE (e.g., matching keyword) byincrementing a data item counter associated with the respective query.Further, in the production environment, the aspect extractor module 219communicates the aspect-value pairs to the communication module 201.

The metadata service module 223 communicates metadata information to thecommunication module 201 based on a query received from thecommunication module 201. The metadata information includes metadatathat the communication module 201 uses to format and generate aninterface (e.g., a user interface).

The search index engine 227 includes search indexes and data item searchinformation (e.g., including data items and associated domain-valuepairs and aspect-value pairs). In the production environment, the searchindex engine 227 receives the transformed query from the communicationmodule 201 and utilizes the search indexes to identify data items basedon the transformed query. Further, in the production environment, thesearch index engine 227 communicates the found data items to thecommunication module 201.

Application of Searching Multiple

Sellers in the Exemplary Network Architecture

Currently, an end-user of an electronic marketplace system may wish topurchase two different types of items. For example, one item may be an“iPod Nano®,” and the other item is a “Wii®.” However, in order to saveshipping fees, the end-user prefers to purchase both items from the sameseller or merchant. However, there is no way for the end-user to know inadvance who the sellers or merchants carrying the combination of itemsmight be. The sellers or merchants are typically unknown to the end-userprior to performing a search.

Currently, there is no electronic support for searches combining bothresults of various item types with results from the same seller.Therefore, in order to find such a seller, the end-user needs to performthe “iPod Nano®” search first, and then perform the “Wii®” search andmanually locate a common seller. Alternatively, the “iPod Nano®” searchis performed and when the end-user determines a virtual store or shop ofthe matching seller, performs a subsequent search for a Wii®. Theend-user needs to repeat this process seller-by-seller until a commonseller for both item types is found. Additionally, if such a commonseller is located, the end-user may desire to find more such sellers tocompare item prices, the feedback ranking for each seller, and otherrelated characteristics. Even with a search for only two items, thesearch and manual sorting process is tedious and time consuming. Asearch to find all sellers who are selling three or more different typesof items is nearly impossible to perform manually.

With reference to FIG. 3A, an exemplary user-prompt interface 300 isshown whereby a user may find sellers selling multiple matching items.The user-prompt interface 300 is shown to include a number of searchboxes to assist in an end-user search. For example, a series of searchboxes 301 is shown to include a keyword field 303, a category field 305,and a price range field 307. Each of the series of search boxes 301 ispresented by means of a search module or search engine described herein.Although the series of search boxes 301 indicates only three sets offields, a skilled artisan will recognize that any number of fields canbe included. For example, once the end-user has entered information intothe third of the three sets of fields, a new set of fields may appearautomatically. Alternatively, an end-user may select a button (notshown) to enter an additional set of fields. Such techniques such asautomatically adding additional fields to the exemplary user-promptinterface 300 are known independently in the art.

The keyword field 303 boxes may consist of, for example, drop-downmatching boxes, auto-complete boxes, arbitrary-length boxes (that mayinclude Boolean search string entries such as “red” AND “secondgeneration” ANDNOT “new”), or any combination thereof. The categoryfield 305 boxes can be drop-down matching boxes but may also be similarin structure to the keyword field 303 boxes just described. In eithercase, a category identifier such as “electronics” or “video games” maybe entered into the category field 305. The price range field 307 boxesare generally direct user input fields but may also include featuressuch as a drop-down box to assist the end-user in inputting a range ofprices. Additionally, the price range field 307 boxes can also be keyedto a given currency (e.g., US dollars, Japanese yen, or Norwegiankroner) depending upon a geographical region in which the end-user islocated.

Either before or after the end-user has entered preferences in theseries of search boxes 301, a series of selection criteria boxes 309 mayalso be selected. The series of selection criteria boxes 309 may includeany combination of, for example, a selection of all items includingstore inventory, auction items, and “But It Now” items. Once theend-user has entered preferences in the series of search boxes 301 andthe series of selection criteria boxes 309, the end-user selects asubmit button 311 to perform a search using the criteria and rangesentered into the exemplary user-prompt interface 300. Prior to selectingthe submit button 311, the end-user may also choose to store (not shown)criteria entered into the exemplary user-prompt interface 300.

Referring now to FIG. 3B, an exemplary seller search results page 350 isshown to include results from the search including two sellers matchingat least a portion of all entered criteria. For example, a first sellerresults display 351 and a second seller results display 359 indicateresults of searches related to the end-user input criteria. Theexemplary seller search results page 350 can be displayed to theend-user by various means known independently in the art and discussedherein, below. The first seller results display 351 indicates a firstsearch-box result frame 353 based on search input queries of “iPod®” in“All Categories” priced between “$100” and “$1000” on the first of theseries of search boxes 301 (see FIG. 3A). A second search-box resultframe 355 and a third search-box result frame 357 indicates similartypes of results for “Wii®” and “XBOX 360®” from the second and third ofthe series of search boxes 301.

In the second seller results display 359, only the first two of theseries of search boxes 301 have been matched with a first search-boxresult frame 361 based on search input queries of “iPod®” in “AllCategories” priced between “$100” and “$1000” on the first of the seriesof search boxes 301 and a second search-box result frame 363 for the“Wii®” entered at the second of the series of search boxes 301. In thiscase, the second seller results display 359 shows no match for the “XBOX360®” from the third of the series of search boxes 301. Had additionalmatches been produced, the exemplary seller search results page 350would indicate that, for example, additional pages include furtherresults or the exemplary seller search results page 350 may simply bescrolled to indicate all matching results.

If all entered criteria has not been found, the exemplary seller searchresults page 350 may display one or more sellers where a “closest match”is found and indicate (not shown) to the end-user the fields that couldnot be matched in the search. For example, if the end-user entered arange of prices in the price range field 307 (see FIG. 3A), then theexemplary seller search results page 350 may prompt the end-user toeither select a higher price range or a less restrictive price range.Optionally, the end-user can simply leave the price range field 307blank in either an initial search or any subsequent searches. As long asthe exemplary user-prompt interface 300 has enough input to perform asearch (including, for example, at least an item description in thekeyword field 303), a search may be performed.

In FIG. 4, an exemplary method 400 for selecting and evaluating criteriato determine common resources matching end-user criteria is illustrated.At operation 401, an end-user is prompted for one or more keywords. Theend-user is then prompted to enter a category, at operation 403, and aprice range, at operation 405. These steps may be similar to thosedescribed above with reference to the series of search boxes 301 (seeFIG. 3A). At operation 407, a determination is made whether one or moreadditional keywords are to be entered by the end-user for an additionalitem or items. If one or more additional keywords are to be entered,then the exemplary method 400 once again prompts for one or morekeywords at operation 401 and the process continues. If one or moreadditional keywords are not to be entered, then the exemplary method 400continues at operation 409.

The operation 409 performs a search of an existing inventory of items aslocated in, for example, the modules 127 or the information storagedatabases 131 within the exemplary system 100 (see FIG. 1). Adetermination is made at operation 411 whether one or more itemsmatching the criteria input by the end-user are found. If one or moreitems are not found, then a display is presented to the end-user atoperation 413 that no items matching the entered criteria were found andthe end-user is presented with an option to enter fewer criteria atoperation 415. If the end-user chooses not to enter fewer criteria, thenthe exemplary method 400 ends at operation 417. Alternatively, if theend-user chooses to run one or more additional searches using fewercriteria, the exemplary method 400 once again prompts for one or morekeywords at operation 401 and the process begins anew.

If, at operation 411, one or more items are found, then the end-user ispresented with a display (e.g., such as a display of the exemplaryseller search results page of FIG. 3B) at operation 419. The displaypresents one or more sellers having items meeting at least apredetermined number of the end-user entered criteria from operations401, 403, and 405. Alternatively, the display may present a list indecreasing order based on the number of items matched to each seller.The end-user is then offered an opportunity to perform an additionalsearch at operation 421. If the end-user chooses to perform anothersearch, with criteria either related or unrelated to the prior search,the exemplary method 400 once again prompts for one or more keywords atoperation 401 and the search process, again, begins anew. However, ifthe end-user chooses not to perform another search, the exemplary method400 ends at operation 417.

The various embodiments described above present a useful solution to acurrent technical problem: using, for example, one or more processors toperform a search over a potentially huge inventory of items, involving alarge numbers of sellers of the items, and present the results of thesearch to the end-user. The search has eliminated the problem of theend-user performing an arduous, if not impossible task, of firstperforming a manual task of searching through the huge inventory ofitems and then attempting to match related sellers of the items.Consequently, the end-user can now find sellers by multiple matchingmultiple items at one time such that the end-user can buy all the itemsfrom the same seller, in order to, for example, save shipping fees,receive discounts for consolidated purchases, save communicationefforts, decrease the possibility of a bad buying experience (since, incommon seller cases, only large sellers can typically match the criteriaof the end-user), and make certain all the items purchased arrive at thesame time, and not one-by-one.

While various embodiments of the present invention are described withreference to assorted implementations and exploitations, it will beunderstood that these embodiments are illustrative only and that a scopeof the present inventions are not limited to them. In general,techniques for the searches or methods described herein may beimplemented with facilities consistent with any hardware system orhardware systems defined herein. Many variations, modifications,additions, and improvements are possible.

Plural instances may be provided for resources, operations, orstructures described herein as a single instance. Finally, boundariesbetween various resources, operations, and data stores are somewhatarbitrary, and particular operations are illustrated in a context ofspecific illustrative configurations. Other allocations of functionalityare envisioned and may fall within a scope of various embodiments of thepresent invention. In general, structures and functionality presented asseparate resources in the exemplary configurations may be implemented asa combined structure or resource. Similarly, structures andfunctionality presented as a single resource may be implemented asseparate resources. These and other variations, modifications,additions, and improvements fall within a scope of the present inventionthat is represented by the appended claims.

Modules, Components, and Logic

Additionally, certain embodiments described herein may be implemented aslogic or a number of modules, components, or mechanisms. A module,logic, component, or mechanism (collectively referred to as a “module”)may be a tangible unit capable of performing certain operations and isconfigured or arranged in a certain manner. In certain exemplaryembodiments, one or more computer systems (e.g., a standalone, client,or server computer system) or one or more components of a computersystem (e.g., a processor or a group of processors) may be configured bysoftware (e.g., an application or application portion) or firmware (notethat software and firmware can generally be used interchangeably hereinas is known by a skilled artisan) as a module that operates to performcertain operations described herein.

In various embodiments, a module may be implemented mechanically orelectronically. For example, a module may comprise dedicated circuitryor logic that is permanently configured (e.g., within a special-purposeprocessor) to perform certain operations. A module may also compriseprogrammable logic or circuitry (e.g., as encompassed within ageneral-purpose processor or other programmable processor) that istemporarily configured by software or firmware to perform certainoperations. It will be appreciated that a decision to implement a modulemechanically, in the dedicated and permanently configured circuitry, orin temporarily configured circuitry (e.g., configured by software) maybe driven by cost and time considerations.

Accordingly, the term module should be understood to encompass atangible entity, be that an entity that is physically constructed,permanently configured (e.g., hardwired), or temporarily configured(e.g., programmed) to operate in a certain manner and/or to performcertain operations described herein. Considering embodiments in whichmodules or components are temporarily configured (e.g., programmed),each of the modules or components need not be configured or instantiatedat any one instance in time. For example, where the modules orcomponents comprise a general-purpose processor configured usingsoftware, the general-purpose processor may be configured as respectivedifferent modules at different times. Software may accordingly configurethe processor to constitute a particular module at one instance of timeand to constitute a different module at a different instance of time.Other embodiments contemplate one or more of the various engines ormodules being implemented in hardware including, for example, computerprocessors, field programmable gate arrays (FPGAs), application specificintegrated circuits (ASICs), or other types or hardware known to askilled artisan.

Modules can provide information to, and receive information from, othermodules. Accordingly, the described modules may be regarded as beingcommunicatively coupled. Where multiples of such modules existcontemporaneously, communications may be achieved through signaltransmission (e.g., over appropriate circuits and buses) that connectthe modules. In embodiments in which multiple modules are configured orinstantiated at different times, communications between such modules maybe achieved, for example, through the storage and retrieval ofinformation in memory structures to which the multiple modules haveaccess. For example, one module may perform an operation, and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further module may then, at a later time,access the memory device to retrieve and process the stored output.Modules may also initiate communications with input or output devicesand can operate on a resource (e.g., a collection of information).

Exemplary Machine Architecture and

Machine-Readable Storage Medium

With reference now to FIG. 5, an exemplary embodiment extends to amachine in the form of a computer system 500 within which instructions,for causing the machine to perform any one or more of the methodologiesdiscussed herein, may be executed. In alternative exemplary embodiments,the machine operates as a standalone device or may be connected (e.g.,networked) to other machines. In a networked deployment, the machine mayoperate in the capacity of a server or a client machine in server-clientnetwork environment, or as a peer machine in a peer-to-peer (ordistributed) network environment. The machine may be a personal computer(PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant(PDA), a cellular telephone, a web appliance, a network router, a switchor bridge, or any machine capable of executing instructions (sequentialor otherwise) that specify actions to be taken by that machine. Further,while only a single machine is illustrated, the term “machine” shallalso be taken to include any collection of machines that individually orjointly execute a set (or multiple sets) of instructions to perform anyone or more of the methodologies discussed herein.

The exemplary computer system 500 includes a processor 502 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU) orboth), a main memory 504 and a static memory 506, which communicate witheach other via a bus 508. The computer system 500 may further include avideo display unit 510 (e.g., a liquid crystal display (LCD) or acathode ray tube (CRT)). The computer system 500 also includes analphanumeric input device 512 (e.g., a keyboard), a user interface (UI)navigation device 514 (e.g., a mouse), a disk drive unit 516, a signalgeneration device 518 (e.g., a speaker), and a network interface device520.

Machine-Readable Medium

The disk drive unit 516 includes a machine-readable medium 522, forexample, a machine-readable storage medium, on which is stored one ormore sets of instructions and data structures (e.g., software 524)embodying or used by any one or more of the methodologies or functionsdescribed herein. The software 524 may also reside, completely or atleast partially, within the main memory 504 or within the processor 502during execution thereof by the computer system 500; the main memory 504and the processor 502 also constituting machine-readable media.

While the machine-readable medium 522 is shown in an exemplaryembodiment to be a single medium, the term “machine-readable medium” mayinclude a single medium or multiple media (e.g., a centralized ordistributed database, or associated caches and servers) that store theone or more instructions. The term “machine-readable medium” or,similarly, “machine-readable storage medium” shall also be taken toinclude any tangible medium that is capable of storing, encoding, orcarrying instructions for execution by the machine and that cause themachine to perform any one or more of the methodologies of the presentinvention, or that is capable of storing, encoding, or carrying datastructures used by or associated with such instructions. The term“machine-readable medium” shall accordingly be taken to include, but notbe limited to, solid-state memories, and optical and magnetic media.Specific examples of machine-readable media include non-volatile memory,including by way of exemplary semiconductor memory devices (e.g., EPROM,EEPROM, and flash memory devices); magnetic disks such as internal harddisks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROMdisks.

Transmission Medium

The software 524 may further be transmitted or received over acommunications network 525 using a transmission medium via the networkinterface device 520 utilizing any one of a number of well-knowntransfer protocols (e.g., HTTP). Examples of communication networksinclude a local area network (LAN), a wide area network (WAN), theInternet, mobile telephone networks, Plain Old Telephone (POTS)networks, and wireless data networks (e.g., WiFi and WiMax networks).The term “transmission medium” shall be taken to include any intangiblemedium that is capable of storing, encoding, or carrying instructionsfor execution by the machine, and includes digital or analogcommunications signals or other intangible medium to facilitatecommunication of such software.

Although an embodiment has been described with reference to specificexemplary embodiments, it will be evident that various modifications andchanges may be made to these embodiments without departing from thebroader spirit and scope of the invention. Accordingly, thespecification and drawings are to be regarded in an illustrative ratherthan a restrictive sense. The accompanying drawings that form a parthereof show by way of illustration, and not of limitation, specificembodiments in which the subject matter may be practiced. Theembodiments illustrated are described in sufficient detail to enablethose skilled in the art to practice the teachings disclosed herein.Other embodiments may be used and derived therefrom, such thatstructural and logical substitutions and changes may be made withoutdeparting from the scope of this disclosure. The Detailed Description,therefore, is not to be taken in a limiting sense, and the scope ofvarious embodiments is defined only by the appended claims, along withthe full range of equivalents to which such claims are entitled.

Such embodiments of the inventive subject matter may be referred toherein, individually or collectively, by the term “invention” merely forconvenience and without intending to voluntarily limit the scope of thisapplication to any single invention or inventive concept if more thanone is, in fact, disclosed. Thus, although specific embodiments havebeen illustrated and described herein, it should be appreciated that anyarrangement calculated to achieve the same purpose may be substitutedfor the specific embodiments shown. This disclosure is intended to coverany and all adaptations or variations of various embodiments.Combinations of the above embodiments, and other embodiments notspecifically described herein, will be apparent to those of skill in theart upon reviewing the above description.

For example, particular embodiments describe various arrangements,algorithms, programming tools, and topologies of systems. A skilledartisan will recognize, however, that additional embodiments may befocused on electronic business applications and accompanying systemarchitectures in general and not specifically to electronic searching ofconsumer sites.

These and various other embodiments are all within a scope of thepresent invention. The specification and drawings are, accordingly, tobe regarded in an illustrative rather than a restrictive sense.

What is claimed is:
 1. A system comprising: one or more hardwareprocessors; a network interface device configured to transmit using anelectronic communications network; a search engine to generate auser-prompt interface that includes two or more sets of keyword fields,each set of keyword fields configured to receive keywords related to aplurality of items and a price range for the items, the items availablefor purchase in an electronic marketplace, the keyword prompt enginefurther transmits the user-prompt interface to a client machine over thecommunications network using the network interface device; a keywordprompt engine to receive, via the network interface device and from theclient machine, the keywords for each set of keyword fields in theuser-prompt interface; a price range prompt engine to receive the pricerange from the user-prompt interface for each set of keyword fields,wherein the search engine, using the one or more hardware processors andover the communications network, queries one or more electronicinformation storage databases to locate, from an inventory within theelectronic marketplace, one or more sellers having items for sale thatmatch more than one of the sets of keywords with their respective priceranges; and a display engine to transmit to the client machine using thenetwork interface device a listing of the one or more sellers with theirrespective items that match.
 2. The system of claim 1, wherein theuser-prompt interface further includes a category identifier field ineach of the sets of keywords fields, the system further comprising acategory prompt module to receive a category identifier for each of thesets of keywords.
 3. A method comprising: generating, using one or morehardware processors, a user-prompt interface that includes two or moresets of keyword fields, each set of keyword fields configured to receivekeywords related to a plurality of items and a price range for theitems, the items available for purchase in an electronic marketplace;transmitting the user-prompt interface to a client machine over acommunications network using a network interface device; receiving, viathe network interface device and from the client machine, the keywordsfor each set of keyword fields in the user-prompt; receiving the pricerange from the user-prompt interface for each set of keyword fields;querying one or more electronic information storage databases to locate,from an inventory within the electronic marketplace, one or more sellershaving items for sale that match more than one of the sets of keywordswith their respective price ranges; and transmitting, to the clientmachine using the network interface device, a listing of the one or moresellers with their respective items that match.
 4. The method of claim 3wherein each set of keyword fields further includes a category field,wherein the items that match also match the category field.
 5. Atangible machine-readable storage device storing instructions that, whenexecuted by a processor, causes the processor to perform operationscomprising: generating, using one or more hardware processors, auser-prompt interface that includes two or more sets of keyword fields,each set of keyword fields configured to receive keywords related to aplurality of items and a price range for the items, the items availablefor purchase in an electronic marketplace; transmitting the user-promptinterface to a client machine over a communications network using anetwork interface device; receiving, via the network interface deviceand from the client machine, the keywords for each set of keyword fieldsin the user-prompt; receiving the price range from the user-promptinterface for each set of keyword fields; querying one or moreelectronic information storage databases to locate, from an inventorywithin the electronic marketplace, one or more sellers having items forsale that match more than one of the sets of keywords with theirrespective price ranges; and transmitting, to the client machine usingthe network interface device, a listing of the one or more sellers withtheir respective items that match.
 6. The tangible machine-readablestorage device of claim 5, wherein the operations further compriseprompting a user of the client machine for a category identifier andincluding the category identifier in the querying.